#include "threadsocket.h"


threadSocket::threadSocket(QObject *parent)
    : QThread{parent}
{}

void threadSocket::run()
{
    // 建立连接
    socket = new QTcpSocket(this);
    socket->connectToHost(m_kanbanIP, m_port);

    // 等待连接建立
    if (socket->waitForConnected(3000)) {
        // 连接成功，准备数据
        QByteArray data;
        data.resize(1024);
        data = m_string.toUtf8();   // 转换数据

        // 格式："$" + hege + "#" + jinshu + "\r\n";
        // 发送数据
        qint64 bytesWritten = socket->write(data);

        if (bytesWritten == data.size()) {
            // 数据完全发送
            // ...处理发送成功的情况...
        } else {
            // 数据发送不完整，处理错误
            // ...错误处理...
        }

        // 清理操作
        // 关闭连接
        socket->disconnectFromHost();
        socket->waitForDisconnected();

        delete socket;
        socket = NULL;
    } else {
        // 连接失败，处理错误
        // ...错误处理...

        // 删除对象
        //delete socket;
    }
}

// 接收看板的配置信息
void threadSocket::setSocketConfigure(const QString &kanbanIP, const int &port)
{
    if(kanbanIP.isEmpty())
        return;

    m_kanbanIP = kanbanIP;
    m_port = port;
}

// 接收上传内容
void threadSocket::setContextString(const QString &str)
{
    if(str.isEmpty() || str.compare(m_string) == 0)
        return;

    m_string = str;
    run();  // 上传数据
}
